using System;
using System.Collections.Generic;
using Freshbooks.XmlSerializers;

namespace Freshbooks.Model
{
    [FreshbooksSerialization(Name = "client")]
    public class Client
    {
        [FreshbooksSerialization(Name = "client_id")]
        public int ClientId { get; set; }

        [FreshbooksSerialization(Name = "first_name")]
        public string NameFirst { get; set; }

        [FreshbooksSerialization(Name = "last_name")]
        public string NameLast { get; set; }

        [FreshbooksSerialization(Name = "organization")]
        public string Organization { get; set; }

        [FreshbooksSerialization(Name = "email")]
        public string EMail { get; set; }

        [FreshbooksSerialization(Name = "username")]
        public string Username { get; set; }

        [FreshbooksSerialization(Name = "work_phone")]
        public string PhoneWork { get; set; }

        [FreshbooksSerialization(Name = "home_phone")]
        public string PhoneHome { get; set; }

        [FreshbooksSerialization(Name = "mobile")]
        public string PhoneMobile { get; set; }

        [FreshbooksSerialization(Name = "fax")]
        public string PhoneFax { get; set; }

        [FreshbooksSerialization(Name = "language")]
        public string Language { get; set; }

        [FreshbooksSerialization(Name = "currency_code")]
        public string CurrencyCode { get; set; }

        [FreshbooksSerialization(Name = "credits")]
        public List<Credit> Credits { get; set; }

        [FreshbooksSerialization(Name = "notes")]
        public string Notes { get; set; }

        [FreshbooksSerialization(Name = "p_street1")]
        public string Street1 { get; set; }

        [FreshbooksSerialization(Name = "p_street2")]
        public string Street2 { get; set; }

        [FreshbooksSerialization(Name = "p_city")]
        public string City { get; set; }

        [FreshbooksSerialization(Name = "p_state")]
        public string State { get; set; }

        [FreshbooksSerialization(Name = "p_country")]
        public string Country { get; set; }

        [FreshbooksSerialization(Name = "p_code")]
        public string PostalCode { get; set; }

        [FreshbooksSerialization(Name = "s_street1")]
        public string ShippingStreet1 { get; set; }

        [FreshbooksSerialization(Name = "s_street2")]
        public string ShippingStreet2 { get; set; }

        [FreshbooksSerialization(Name = "s_city")]
        public string ShippingCity { get; set; }

        [FreshbooksSerialization(Name = "s_state")]
        public string ShippingState { get; set; }

        [FreshbooksSerialization(Name = "s_country")]
        public string ShippingCountry { get; set; }

        [FreshbooksSerialization(Name = "s_code")]
        public string ShippingPostalCode { get; set; }

        [FreshbooksSerialization(Name = "client_view")]
        public string ClientView { get; set; }

        [FreshbooksSerialization(Name = "view")]
        public string View { get; set; }

        [FreshbooksSerialization(Name = "statement")]
        public string Statement { get; set; }

        [FreshbooksSerialization(Name = "vat_name")]
        public string VatName { get; set; }

        [FreshbooksSerialization(Name = "vat_number")]
        public string VatNumber { get; set; }

        [FreshbooksSerialization(Name = "updated")]
        public DateTime Updated { get; set; }

        [FreshbooksSerialization(Name = "folder")]
        public string Folder { get; set; }

        [FreshbooksSerialization(Name = "credit")]
        public class Credit
        {
            [FreshbooksSerialization(Name = "currency")]
            public string Currency { get; set; }

            [FreshbooksSerialization]
            public float value { get; set; }
        }
    }
}